题意
在$n*m$的网格中每个格子有一些财宝,每次从左上向右下行走,经过的时候如果格子中有财宝则可以捡起一个
问最小次数,捡完所有财宝
题解
如果把矩阵看成图,显然是个DAG,答案就是最小链覆盖
考虑Dilworth,最小链覆盖=最长反链
反链一定从左下->右上,Dp即可
调试记录
最后要输出Max,可以不经过(1,m)的
1 |
|
在$n*m$的网格中每个格子有一些财宝,每次从左上向右下行走,经过的时候如果格子中有财宝则可以捡起一个
问最小次数,捡完所有财宝
如果把矩阵看成图,显然是个DAG,答案就是最小链覆盖
考虑Dilworth,最小链覆盖=最长反链
反链一定从左下->右上,Dp即可
最后要输出Max,可以不经过(1,m)的
1 |
|